#pragma once

#include "Defs.h"
#include "IntegrableInterface.h"
#include "ForceGeneratorInterface.h"


namespace PHYOgre
{


class ForceRegistryManager
{
public:
	ForceRegistryManager(void);
	~ForceRegistryManager(void);

	void Add(IntegrableInterface* iEntity, ForceGeneratorInterface* iForceGenearator);
	void Remove(const IntegrableInterface* iEntity, const ForceGeneratorInterface* iForceGenearator);
	void Clear();

	void UpdateForces(const Real& iDT);

	typedef std::pair<IntegrableInterface*,ForceGeneratorInterface*> RegistryEntry;
	typedef std::map<RegistryEntry,bool> Registry;

	Registry mRegistrations;
	

};

}